The present invention relates to computer graphics, and, more particularly, to methods and systems for defining multiple views of an object, controlling an image generator to produce three-dimensional images in accordance with the views, and selectively navigating between the three-dimensional images.
Engineers of an enterprise typically use conventional computer-aided design (CAD) applications or systems to design and visualize an object, such as a building, car or an airplane, in three-dimensional (3D) images. The CAD system often use hundreds of thousands of polygons (e.g., triangles in three vector coordinate system) or other arithmetically derived structures to reflect the geometry of surfaces, volumes, or elements of the respective object. The conventional CAD system has a visualization system that projects the 3D polygons into a geometric image for display on a two-dimensional video screen. CAD systems also allow the user to change his viewpoint or change the geometry in real time, requiring the CAD system to render new geometric images on the fly in real time As a result, CAD applications are commonly hosted on high speed graphics work stations (such as workstation-class computers available from Sun Microsystems, Inc. or Silicon Graphics, Inc., or PC-type computers with exceptional amounts of memory and/or high-end graphics cards) to enable the CAD applications to process very large amounts of data for generating and displaying the geometric images within a rapid response time. But high speed graphics work stations are often expensive and generally not purchased by an enterprise for project employees other than design engineers. This limits the design review activity to large meetings so that the people are brought to the specialty computing machinery to view the design information. Thus, outside of these meetings, an enterprise typically uses static reproductions of the geometric images to share design information with other employees, partners, or customers.
Conventional methods have been employed for use on low-end common personal computers (e.g., a PC with a 400 mhz to 2400 mhz processor, a 2D graphics card, and minimal or no modems) to produce and dynamically view images from the 3D object data generated by the CAD application. Using this conventional method, individual parts of an object or small assemblies of an object may be viewed in an image that reflects the 3D geometry of the parts or small assemblies. But large or complex systems, such as an aircraft, often require millions of times more data to render a geometric image. This often causes problems to arise when using these conventional methods. The first conventional method converts the geometry of the 3D data into 3D polygon (e.g., triangular geometry) or a program specific proprietary format, and then uses a conventional PC-based viewer (such as a virtual reality modeling language (VRML) viewer, Java 3D viewer or a proprietary viewer) to produce and display an image by rendering the geometry directly from the 3D polygon geometry. Using this first conventional method, the limits of the low-end computer are typically exceeded when the 3D data produced by the CAD application comprise massive amounts of data causing the program executing this conventional method to stall, fail to display all of the 3D data, or to run at an unacceptable rate. In addition, the 3D polygon geometry used in this first conventional method often consists of very large files that are difficult to manage, distribute and process. Furthermore, the conventional PC-based viewer employs navigation techniques for moving between geometric images that are typically difficult to master due to lags in reaction caused by the PC-based viewer processing large amounts of data associated with the respective geometric image to be viewed. In addition, the 3D representations contain the actual precise definition of the objects. These objects can be captured within the computing device and reverse engineered, making the data vulnerable to compromise.
The second conventional method uses multiple, still, 2D images of the object produced by the 3D CAD system (or other sources of images or photographs) taken in multiple directions from a common viewpoint. Typically six images corresponding to the six faces of a cube (left, right, up, down, frontwards, backwards) are used. A conventional PC viewer, such as QuickTime VR or other proprietary viewer, then merges the images in real time, giving the appearance of being able to look in any direction from that viewpoint. However, because the conventional PC-based viewer is not directly linked to the 3D CAD system or the source of the original geometry, a separate processing environment is required. In addition, the conventional PC-based viewers typically expect a relatively small number of cubes to be produced and linked to dynamically represent the object in 3D. Preparation of the final viewable configuration of cubes is labor intensive and requires extensive effort to customize. Generation of “hot spot” navigation links requires an understanding of the desired path. This must then be coded into the application. Many of the applications require the navigation data be included within the images, thus complicating the generation of the images and increasing their size. Most navigation schemes are confined to a linear path with branches. Moreover, the links between geometric images or cubes generated using the second conventional method are typically either limited to “jumping” between cubes or require a significant amount of user programming or customization to create “seamless” movement between geometric images. Conventional PC-based viewers also typically expect the cubes are to be produced from photographic images, and thus, perform edge blending and other time consuming processes that are not necessary with digitally generated 2D images.
Therefore, a need exists for systems and methods overcoming the problems noted above and others previously experienced for producing and dynamically viewing on a low-end machine geometric images of an object generated by a CAD system or other legacy graphics image generator.